package com.zhentao.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author : mgh
 * @date : 2024-10-25 18:59
 * @effect : 当前类的作用是
 * @projectTeam :
 */
@Data
public class PurchaseOrderVO {

    private Long id;

    /**
     * 类型(出库/入库)
     */

    private String type;

    /**
     * 出入库分类
     */

    private String subType;

    /**
     * 初始票据号
     */

    private String defaultNumber;

    /**
     * 票据号
     */
    private String number;


    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 出入库时间
     */
    @TableField(value = "oper_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operTime;

    /**
     * 供应商id
     */

    private Long organId;

    /**
     * 操作员
     */

    private Long creator;

    /**
     * 账户id
     */

    private Long accountId;

    /**
     * 变动金额(收款/付款)
     */

    private BigDecimal changeAmount;

    /**
     * 找零金额
     */

    private BigDecimal backAmount;

    /**
     * 合计金额
     */

    private BigDecimal totalPrice;

    /**
     * 付款类型(现金、记账等)
     */

    private String payType;

    /**
     * 单据类型
     */

    private String billType;

    /**
     * 备注
     */

    private String remark;

    /**
     * 附件名称
     */

    private String fileName;

    /**
     * 销售员（可以多个）
     */

    private String salesMan;

    /**
     * 多账户ID列表
     */

    private String accountIdList;

    /**
     * 多账户金额列表
     */

    private String accountMoneyList;

    /**
     * 优惠率
     */

    private BigDecimal discount;

    /**
     * 优惠金额
     */

    private BigDecimal discountMoney;

    /**
     * 优惠后金额
     */

    private BigDecimal discountLastMoney;

    /**
     * 销售或采购费用合计
     */

    private BigDecimal otherMoney;

    /**
     * 订金
     */

    private BigDecimal deposit;

    /**
     * 状态，0未审核、1已审核、2完成采购|销售、3部分采购|销售、9审核中
     */

    private String status;

    /**
     * 采购状态，0未采购、2完成采购、3部分采购
     */

    private String purchaseStatus;

    /**
     * 关联订单号
     */

    private String linkNumber;

    /**
     * 租户id
     */

    private Long tenantId;

    /**
     * 表头Id
     */
    private Long headerId;

    /**
     * 商品Id
     */
    @TableField(value = "material_id")
    private Long materialId;

    /**
     * 商品扩展id
     */
    @TableField(value = "material_extend_id")
    private Long materialExtendId;

    /**
     * 商品计量单位
     */
    @TableField(value = "material_unit")
    private String materialUnit;

    /**
     * 多属性
     */
    @TableField(value = "sku")
    private String sku;

    /**
     * 数量
     */
    @TableField(value = "oper_number")
    private Integer operNumber;

    /**
     * 基础数量，如kg、瓶
     */
    @TableField(value = "basic_number")
    private BigDecimal basicNumber;

    /**
     * 单价
     */
    @TableField(value = "unit_price")
    private BigDecimal unitPrice;

    /**
     * 采购单价
     */
    @TableField(value = "purchase_unit_price")
    private BigDecimal purchaseUnitPrice;

    /**
     * 含税单价
     */
    @TableField(value = "tax_unit_price")
    private BigDecimal taxUnitPrice;

    /**
     * 金额
     */
    @TableField(value = "all_price")
    private BigDecimal allPrice;

    /**
     * 备注
     */

    /**
     * 仓库ID
     */
    @TableField(value = "depot_id")
    private Long depotId;

    /**
     * 调拨时，对方仓库Id
     */
    @TableField(value = "another_depot_id")
    private Long anotherDepotId;

    /**
     * 税率
     */
    @TableField(value = "tax_rate")
    private BigDecimal taxRate;

    /**
     * 税额
     */
    @TableField(value = "tax_money")
    private BigDecimal taxMoney;

    /**
     * 价税合计
     */
    @TableField(value = "tax_last_money")
    private BigDecimal taxLastMoney;

    /**
     * 商品类型
     */
    @TableField(value = "material_type")
    private String materialType;

    /**
     * 序列号列表
     */
    @TableField(value = "sn_list")
    private String snList;

    /**
     * 批号
     */
    @TableField(value = "batch_number")
    private String batchNumber;

    /**
     * 有效日期
     */
    @TableField(value = "expiration_date")
    private Date expirationDate;

    /**
     * 关联明细id
     */
    @TableField(value = "link_id")
    private Long linkId;

    /**
     * 删除标记，0未删除，1删除
     */
    @TableField(value = "delete_flag")
    private String deleteFlag;
    /**
     * 产品类型id
     */
    @TableField(value = "category_id")
    private Long categoryId;

    /**
     * 名称
     */
    @TableField(value = "name")
    private String name;

    /**
     * 制造商
     */
    @TableField(value = "mfrs")
    private String mfrs;

    /**
     * 型号
     */
    @TableField(value = "model")
    private String model;

    /**
     * 规格
     */
    @TableField(value = "standard")
    private String standard;

    /**
     * 颜色
     */
    @TableField(value = "color")
    private String color;

    /**
     * 单位-单个
     */
    @TableField(value = "unit")
    private String unit;


    /**
     * 图片名称
     */
    @TableField(value = "img_name")
    private String imgName;

    /**
     * 计量单位Id
     */
    @TableField(value = "unit_id")
    private Long unitId;

    /**
     * 保质期天数
     */
    @TableField(value = "expiry_num")
    private Integer expiryNum;

    /**
     * 基础重量(kg)
     */
    @TableField(value = "weight")
    private BigDecimal weight;

    /**
     * 启用 0-禁用  1-启用
     */
    @TableField(value = "enabled")
    private Boolean enabled;

    /**
     * 自定义1
     */
    @TableField(value = "other_field1")
    private String otherField1;

    /**
     * 自定义2
     */
    @TableField(value = "other_field2")
    private String otherField2;

    /**
     * 自定义3
     */
    @TableField(value = "other_field3")
    private String otherField3;

    /**
     * 是否开启序列号，0否，1是
     */
    @TableField(value = "enable_serial_number")
    private String enableSerialNumber;

    /**
     * 是否开启批号，0否，1是
     */
    @TableField(value = "enable_batch_number")
    private String enableBatchNumber;

    /**
     * 仓位货架
     */
    @TableField(value = "position")
    private String position;
    /**
     * 供应商名称
     */
    @TableField(value = "supplier")
    private String supplier;

    /**
     * 联系人
     */
    @TableField(value = "contacts")
    private String contacts;

    /**
     * 联系电话
     */
    @TableField(value = "phone_num")
    private String phoneNum;

    /**
     * 电子邮箱
     */
    @TableField(value = "email")
    private String email;

    /**
     * 备注
     */
    @TableField(value = "description")
    private String description;

    /**
     * 是否系统自带 0==系统 1==非系统
     */
    @TableField(value = "isystem")
    private Integer isystem;


    /**
     * 预收款
     */
    @TableField(value = "advance_in")
    private BigDecimal advanceIn;

    /**
     * 期初应收
     */
    @TableField(value = "begin_need_get")
    private BigDecimal beginNeedGet;

    /**
     * 期初应付
     */
    @TableField(value = "begin_need_pay")
    private BigDecimal beginNeedPay;

    /**
     * 累计应收
     */
    @TableField(value = "all_need_get")
    private BigDecimal allNeedGet;

    /**
     * 累计应付
     */
    @TableField(value = "all_need_pay")
    private BigDecimal allNeedPay;

    /**
     * 传真
     */
    @TableField(value = "fax")
    private String fax;

    /**
     * 手机
     */
    @TableField(value = "telephone")
    private String telephone;

    /**
     * 地址
     */
    @TableField(value = "address")
    private String address;

    /**
     * 纳税人识别号
     */
    @TableField(value = "tax_num")
    private String taxNum;

    /**
     * 开户行
     */
    @TableField(value = "bank_name")
    private String bankName;

    /**
     * 账号
     */
    @TableField(value = "account_number")
    private String accountNumber;


    /**
     * 排序
     */
    @TableField(value = "sort")
    private String sort;


}
